package com.mango.game.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 产品信息
 * </p>
 *
 * @author Mango
 * @since 2025-02-24
 */
@TableName("products_info")
public class ProductsInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 产品唯一标识
     */
    @TableId("uid")
    private Long uid;

    /**
     * 创建时间
     */
    @TableField("created_at")
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @TableField("updated_at")
    private LocalDateTime updatedAt;

    /**
     * 所属命名空间ID
     */
    @TableField("name_space")
    private Long nameSpace;

    /**
     * 所属游戏ID
     */
    @TableField("game_id")
    private Long gameId;

    /**
     * 所属渠道ID
     */
    @TableField("channel_id")
    private Long channelId;

    /**
     * 产品名称（不同命名空间下可以重复）
     */
    @TableField("name")
    private String name;

    /**
     * 描述标签
     */
    @TableField("label")
    private String label;

    /**
     * 产品最大注册用户限制
     */
    @TableField("max_reg_user")
    private Integer maxRegUser;

    /**
     * 自定义产品参数（透传到SDK）
     */
    @TableField("custom_param")
    private String customParam;

    /**
     * 状态：0-测试 1-提审 2-生产 3-关停
     */
    @TableField("status")
    private Byte status;

    public Long getUid() {
        return uid;
    }

    public void setUid(Long uid) {
        this.uid = uid;
    }

    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }

    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }

    public Long getNameSpace() {
        return nameSpace;
    }

    public void setNameSpace(Long nameSpace) {
        this.nameSpace = nameSpace;
    }

    public Long getGameId() {
        return gameId;
    }

    public void setGameId(Long gameId) {
        this.gameId = gameId;
    }

    public Long getChannelId() {
        return channelId;
    }

    public void setChannelId(Long channelId) {
        this.channelId = channelId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public Integer getMaxRegUser() {
        return maxRegUser;
    }

    public void setMaxRegUser(Integer maxRegUser) {
        this.maxRegUser = maxRegUser;
    }

    public String getCustomParam() {
        return customParam;
    }

    public void setCustomParam(String customParam) {
        this.customParam = customParam;
    }

    public Byte getStatus() {
        return status;
    }

    public void setStatus(Byte status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return "ProductsInfo{" +
        "uid = " + uid +
        ", createdAt = " + createdAt +
        ", updatedAt = " + updatedAt +
        ", nameSpace = " + nameSpace +
        ", gameId = " + gameId +
        ", channelId = " + channelId +
        ", name = " + name +
        ", label = " + label +
        ", maxRegUser = " + maxRegUser +
        ", customParam = " + customParam +
        ", status = " + status +
        "}";
    }
}
